package com.design.command;

import java.io.Serializable;

/**
 * @author leali
 * @title: NetCommand
 * @projectName design
 * @description: 抽象命令类，由于需要将命令对象写入文件，因此它实现了Serializable接口
 * @date 2022/1/3 17:34
 */
public abstract class NetCommand implements Serializable {
    /**
     * 命令名称
     */
    protected String name;
    /**
     * 命令参数
     */
    protected String args;
    /**
     * 维持对接收者对象的引用
     */
    protected ConfigOperator configOperator;

    public NetCommand(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setConfigOperator(ConfigOperator configOperator) {
        this.configOperator = configOperator;
    }

    /**
     * 声明两个抽象的执行方法execute()
     * @param args 参数
     */
    public abstract void execute(String args);

    public abstract void execute();

}
